package leetCode;

/**
 * 28. 实现 strStr()
 * API调用/字符串
 实现strStr()函数。

 给你两个字符串haystack 和 needle ，请你在 haystack 字符串中找出 needle 字符串出现的第一个位置（下标从 0 开始）。如果不存在，则返回  -1 。

 说明：
 当needle是空字符串时，我们应当返回什么值呢？这是一个在面试中很好的问题。

 对于本题而言，当needle是空字符串时我们应当返回 0 。这与 C 语言的strstr()以及 Java 的indexOf()定义相符。

 示例 1：
 输入：haystack = "hello", needle = "ll"
 输出：2

 示例 2：
 输入：haystack = "aaaaa", needle = "bba"
 输出：-1

 示例 3：
 输入：haystack = "", needle = ""
 输出：0

 提示：
 1 <= haystack.length, needle.length <= 104
 haystack 和 needle 仅由小写英文字符组成
 */
public class ImplementstrStr {
    public static void main(String[] args) {
        System.out.println(strStr("abc","c"));
    }

    //纯API调用，100/85
    public static int strStr(String haystack, String needle) {
        if (haystack.contains(needle)) {
            int len = haystack.length();
            for (int i=0;i < len;i++) {
                if (!haystack.startsWith(needle)) {
                    haystack = haystack.substring(1,haystack.length());
                } else {
                    return i;
                }
            }
        }
        return -1;
    }

    // = =额
    public static int strStr2(String haystack, String needle) {
        return haystack.indexOf(needle);
    }
}
